# -*- codeing = utf-8 -*-
# @Time : 2021/2/21 16:40
# @Atuthor: 朱朱
# @File: 023逻辑运算符.py
# @Software: PyCharm

# 逻辑运算符   逻辑与and   逻辑或or  逻辑非not

# 逻辑与规则:只要有一个运算数是False,结果就是False;只有所有的运算数都是True,结果才是True
print(2 > 1 and 5 > 3 and 10 > 2)  # True
print(3 > 2 and 5 < 4 and 6 > 1)  # False

# 逻辑或规则:只要有一个运算数是True,结果就是True;只有所有的运算数都是False,结果才是False
print(3 > 9 or 4 < 7 or 10 < 3)  # True
print(3 > 5 or 4 < 2 or 8 < 7)  # False

# 逻辑非运算:True ==> False   False ==> True
print(not (5 > 2))

# 逻辑与运算，只有所有的运算数都是True,结果才为True
# 只要有一个运算数是False,结果就是False
4 > 3 and print('hello world')
4 < 3 and print('你好世界')  # 4<3,出现了短路问题,后面的不执行

# 逻辑或运算，只有所有的运算数都是False,结果才是False
# 只要有一个运算数是True,结果就是True
4 > 3 or print('哈哈哈')   # 4>3 ,出现了短路问题,后面的不执行
4 < 3 or print('嘿嘿嘿')

# 逻辑运算的结果，一定是布尔值吗？  不一定
# 逻辑与运算做取值时，取第一个为False的值；如果所有的运算数都是True,取最后一个值
print(3 and 5 and 0 and 'hello')  # 0
print('good' and 'yes' and 'ok' and 100)  # 100

# 逻辑或运算做取值时，取第一个为True的值；如果所有的运算数都是False,取最后一个值
print(0 or [] or 'lisi' or 5 or 'ok')  # lisi
print(0 or [] or {} or ())  # ()